package NovoSISAM.Dao;


import NovoSISAM.DataBase.Resultado.*;
import NovoSISAM.DataBase.DataBase;
import NovoSISAM.DataBase.Resultado;
import NovoSISAM.Model.Paciente;
import java.text.ParseException;
import javax.swing.*;
/**
 *
 * @author Cleiviane
 */
public class PacienteDao {

    Paciente paciente;

    public static boolean inserirPaciente(Paciente paciente){

        try {
                Object[] valores = new Object[10];
                valores[0] = paciente.getProntuario();
                valores[1] = paciente.getNome();
                valores[2] = paciente.getCpf();
                valores[3] = paciente.getEndereco();
                valores[4] = paciente.getDoencas();
                valores[5] = paciente.getSituacao();
                valores[6] = paciente.getData_nasc();
                valores[7] = paciente.getTelefone();
                valores[8] = paciente.getDadosClin();
                valores[9] = paciente.getCelular();
                DataBase.executaOperacao("insert into pacientes values(?,?,?,?,?,?,?,?,?,?)", valores);
            return true;
        } catch (Exception e) {
            return false;

        }

    }

    public static Paciente buscaPaciente(String chaveBusca, Object[] valor) throws ParseException{
         Object[] valores = new Object[2];

         valores[0] = chaveBusca;

        // if(tipoDeBusca.equals("cpf"))
            valores[1] = valor;

//         if(tipoDeBusca.equals("nome"))
//            valores[1] = valor;
//
//         if(tipoDeBusca.equals("prontuario"))
//            valores[1] = valor;

            Resultado result = DataBase.executaConsulta("select * from pacientes where prontuario = ?", valores);

            if(result.qtdRegistros()!=0){
                Paciente paciente = PacienteDao.preencherPaciente(result);
                 return paciente;
            }else
                return null;
    }

    public static Paciente preencherPaciente(Resultado result) throws ParseException{
        Paciente paciente = new Paciente();

        paciente.setProntuario((Integer)result.valorCampo(0, "prontuario"));
        paciente.setNome((String)result.valorCampo(0, "nome"));
        paciente.setCpf((String) result.valorCampo(0, "cpf"));
        paciente.setEndereco((String) result.valorCampo(0, "endereco"));
        paciente.setDoencas((String) result.valorCampo(0, "doencas"));
        paciente.setSituacao((Integer) result.valorCampo(0, "situacao"));
//        Date dataformat = convertStringPraDate((String) result.valorCampo(0, "data_nasc"));
  //      paciente.setData_nasc(dataformat);
        paciente.setData_nasc((String) result.valorCampo(0, "data_nasc"));
        paciente.setTelefone((String) result.valorCampo(0, "telefones"));
        paciente.setDadosClin((String) result.valorCampo(0, "dados_clinicos"));
        paciente.setCelular((String) result.valorCampo(0, "celular"));
        return paciente;
    }

    public static Paciente localizarPacientePorNome(String nome) throws ParseException{
        Object[] valores = new Object[1];
        valores[0] = nome;

        Resultado result = DataBase.executaConsulta("select * from pacientes where nome = ?", valores);

        if(result.qtdRegistros()!=0){
            Paciente paciente = preencherPaciente(result);
            return paciente;
        }else
            return null;
    }

    public static Paciente localizarPacientePorCodigo(int prontuario) throws ParseException{
        Object[] valores = new Object[1];
        valores[0] = prontuario;

        Resultado result = DataBase.executaConsulta("select * from pacientes where prontuario = ?", valores);

         if(result.qtdRegistros()!=0){
                Paciente paciente = PacienteDao.preencherPaciente(result);
                 return paciente;

        }else
            return null;
    }

    public static void excluirPaciente( Integer prontuario){
         Object[] valores = new Object[1];
         valores[0] = prontuario;

         DataBase.executaOperacao("delete from pacientes where prontuario = ?", valores);
    }



    public static void alterarPaciente(Paciente paciente){
        try {
            Object[] valores = new Object[10];
            valores[0] = paciente.getNome();
            valores[1] = paciente.getCpf();
            valores[2] = paciente.getEndereco();
            valores[3] = paciente.getDoencas();
            valores[4] = paciente.getSituacao();
            valores[5] = paciente.getData_nasc();
            valores[6] = paciente.getTelefone();
            valores[7] = paciente.getDadosClin();
            valores[8] = paciente.getCelular();
            valores[9] = paciente.getProntuario();
            DataBase.executaOperacao(
                    "update pacientes set nome=?,cpf=?,endereco=?,doencas=?,situacao=?,data_nasc=?,telefones=?,dados_clinicos=?,celular=? where prontuario = ?"
                    , valores);
            JOptionPane.showMessageDialog(null, "Cliente cadastrado com sucesso.");

        } catch (Exception e) {
            JOptionPane.showMessageDialog(null, "Erro ao Inserir.");
        }
    }



}

